#include "Uart.h"

#define FOSC 11059200UL //12000000UL
#define BAUD 9600UL


void init_uart()
{
	TMOD|=0x20;//T1工作为方式2
	TMOD&=0XBF;
    SCON=0x50;//方式1：10位异步同通讯，串口允许接收
    TH1=256-FOSC/(384*BAUD);
    TL1=TH1;
    TR1=1;
    TI=1;//使用软件触发首次串口中断的发生
}
void send_byte(uint8 _byte)
{
	REN=0;
	SBUF=_byte;
	while(TI==0);
	TI=0;
	REN=1;
}

void send_Sting(uint8 *p)
{
	while(*p!='\0')
	{
		send_byte(*p++);
	}
}

void send_Num(uint16 num)
{
	uint8 len=sizeof(num);
	while(len--)
	{
		uint8 n=(uint8)num&0x0001;
		num>>=1;
		send_byte(n);
	}
}

uint8 read_byte()
{
	uint8 _data;
	while(REN)
	{
		if(RI)
		{
			RI=0;
			_data=SBUF;
			break;
		}
	}
	return _data;
}

//void main()
//{
//	uint32 i=65530;
//	init_uart();
//	while(1)
//	{
//		send_byte('d');
//		while(i--);
//		i=65530;
//	}
//}
